/*! \file InputLayoutDesc.h
 *	\brief <write description for InputLayoutDesc.h>
 *
 *	created:	2010/12/08
 *	created:	8:12:2010   15:41
 *	filename: 	C:\src\tactics-engine\libs\gd\InputLayoutDesc.h
 *	file path:	C:\src\tactics-engine\libs\gd
 *	file base:	InputLayoutDesc
 *	file ext:	h
 *	author:		Vitalii Trubchaninov
 *				vitalii.trubchaninov@ubisoft.com
 */

#ifndef _gd_INPUTLAYOUTDESC_H_
#define _gd_INPUTLAYOUTDESC_H_

#pragma once

#include "core/String.h"
#include "core/vector.h"
#include "utils/PTree.h"

namespace tt{
namespace gd{

class InputLayoutDescElement
{
public:
	InputLayoutDescElement();

public:
	String semantic;
	UInt semanticIndex;
	String format;
};
typedef core::Vector<InputLayoutDescElement>::Type InputLayoutDescElements;

class InputLayoutDesc
{
public:
	InputLayoutDesc();

	bool Create(const utils::PTree&);

	const InputLayoutDescElements& elements() const;

private:
	InputLayoutDescElements m_elements;
};

} //namespace gd
} //namespace tt

#endif //_gd_INPUTLAYOUTDESC_H_